Software testing is the process of evaluating software to assess the quality of the software. Software testing may also be understood as a test conducted on a software application to provide a user with information on the quality of the software application. Furthermore, the software testing may also provide an independent opinion of the software application to allow the user to appreciate and understand the risks of the software application implementation.
The software testing techniques are mainly classified as black box testing technique or white box testing technique. Generally, black box testing ignores the internal mechanism of the software application and focuses on the output generated against any input and execution of the software application. White box testing considers the internal mechanism of a software application.
Generally, test suites comprise test cases which are used in software testing. The test cases may further comprise one or more test steps and require test-beds for execution. Further, the test-beds and other resources for example databases, operating environments and browsers are physical and finite in nature.
Typically, the test suites comprising test cases and test steps grow over time due to addition of new test cases and test steps. Subsequent utilization of such grown test suites during software testing results in database locking, wastage of time and resources. Moreover due to the physical and finite nature of the test-beds and other resources, frequent unplanned time delays are encountered and thus impacting deadlines, effort and time.